home *** CD-ROM | disk | FTP | other *** search
/ Scene Storm / Scene Storm - Volume 1.iso / coding / asm / utils / beermon / moni.doc < prev    next >
Text File  |  1980-01-03  |  75KB  |  1,561 lines

  1. *****************************************************************************
  2. *                                                                           *
  3. * Documentation for the BeerMon V0.46c farewell release. Date: 18-Jun-93    *
  4. *                                                                           *
  5. * - (C) 1990,1991,1992,1993 by Carnivore/BeerMacht                          *
  6. *                                                                           *
  7. * "With my art I am the fist in the face of god"                            *
  8. *                                                                           *
  9. * DISCLAIMER                                                                *
  10. *                                                                           *
  11. * This program is FREEWARE, this means that you can copy it freely as long  *
  12. * as you don't ask any more money for it than a nominal fee for copying.    *
  13. * If you want to distribute this program you should keep this document and  *
  14. * the schematics with it.  This program cannot be used for commercial       *
  15. * purposes without written permission from the author.  The author is not   *
  16. * responsible for any loss of data, damages to software or hardware that    *
  17. * may result directly or indirectly from the use of this program.           *
  18. *                                                                           *
  19. *                                                                           *
  20. *                                                                           *
  21. * NOTE: This seems to be the LAST version of the BeerMon written by myself  *
  22. * ----  as any further motivation ceased to exist. Anybody may feel invited *
  23. *       to continue working on the source if he/she likes to do so.         *
  24. *       The only thing I ask for is that I get some credits for the work I  *
  25. *       did if you intend to release an improved version or use parts of my *
  26. *       sourcecode within your own productions. (And you may even spend     *
  27. *       me a beer if we happen to meet someday somewhere :-)                *
  28. *                                                                           *
  29. *****************************************************************************
  30.  
  31. It is done. The BEERMACHT presents the BeerMon, which seems to contain some
  32. outstanding features other known monitors don't have. Any hints, comments,
  33. bug reports or opinions are highly appreciated and can be made in those
  34. german BBS the users "BEERMACHT" or "CARNIVORE" appear in, prefered in
  35. these ones:
  36.  
  37.         INTERFACE      +49  208 xxxxx  (get the numbers somewhere)
  38.      or THE CAULDRON   +49  202 xxxxx  (get the number somewhere)
  39.      or LAST RESORT    +49  211 xxxxx  (get the numbers somewhere)
  40.      or BEERKRUG       +49 2102 xxxxxx (just for very private usership)
  41.      or PUNGENT STENCH +49 2102 xxxxxx (even more private usership :-)
  42.  
  43. Now let's start with the documentation...
  44. The BeerMon is another kind of monitor compared to those of the past like
  45. C-monitor, Amon, etc. He is a monitor of the nasty type because he makes no
  46. use of any library, device or even Kickstart stuff, in fact you may rip out
  47. the Kickstart ROM once the BeerMon is running. The BeerMon includes a full
  48. screen editor which is of use in most cases. So if you got the taste of gore
  49. now here's the most important thing. If you build the hardware add-on which
  50. is described in the schematics you are able to break any program just with
  51. reset and you are able to access any byte of memory untouched. This works
  52. because the hardware contains expansion memory in which backup of workspace
  53. memory is moved. Into this memory expansion the monitor can be loaded by
  54. executing the "init"-command on this disk. If you aren't able to build this
  55. board (blame on you), you could also use the BeerMon with in some cases 
  56. reduced capabilities.  The executable is completely position independent
  57. and may be started just by JMPing to the startaddress to which he has been
  58. loaded.  Or you set this funky bus error vector at $8 with the exception
  59. entry of the BeerMon and the magic button (see schematics) brings you to
  60. paradise.  Well, this should only be a hint how to be more powerful than
  61. only starting the BeerMon from CLI, which is also possible but not the most
  62. advanced and consistent method.  Note the fact, that the BeerMon has never
  63. been designed for CLI usage and therefor may have some disadvantages when
  64. you return to the CLI.  So the choice is yours...
  65.  
  66. ························· SUMMARY OF CHANGES ······························
  67.  
  68. - CHANGES made until V0.46c (jun 1993)
  69.  
  70. - added support for different display modes.  Currently the following modes
  71.   may be selected:
  72.     Name [dimensions]  vert.freq. hor.freq.  requirements
  73.   - PAL  [640×256]        50Hz      15KHz         -
  74.   - PAL  [640×512]        50Hz      15KHz         -
  75.   - NTSC [640×200]        60Hz      15KHz         -
  76.   - NTSC [640×400]        60Hz      15KHz         -
  77.   - VGA  [640×480]        60Hz      31KHz    ECS Agnus&Denise, VGA Monitor
  78.  
  79. - removed a bug in the soundplay interrupt routine, which crept into V0.45.
  80. - BMPE updated to V0.14 using GadToolsBox 2.0
  81.   - redesigned 'Mode' cycle gadget.
  82.   - the cycle gadgets now behave the standard way (thanx to Fakebuster :-)
  83. - and yes, finally the complete sourcecode (BMsourcecode.lha) is included!
  84.  
  85. - CHANGES made until V0.45 (mar 1993)
  86.  
  87. - the BeerMon automagically handles ECS/AGA differences.  Patching is no
  88.   longer needed to obtain a special BeerMon version for AGA chipsets.
  89. - removed an ancient bug in disk drive startup code.
  90. - the disk drive heads are repositioned before leaving the BeerMon.
  91. - removed obsolete check for $aabb at offset 8 of the header when sending
  92.   SNES/MD data to Super Magicom copier (as requested by 6Pack .-).
  93. - on startup and after every warmstart ('go' command etc.) the BeerMon code
  94.   and static data are checked for modification.  If something is wrong a
  95.   corresponding message informs you about this situation.
  96. - the command 'S' checks if the file would fit on the current disk and only
  97.   saves data, if there is enough free space.
  98. - the internal mfm-routines were optimised and provide faster block and
  99.   file operations now.
  100. - added command 'verify' which toggles disk verify on and off.
  101. - all dos-related operations now allow the user to select between retry,
  102.   ignore and abort, if a read or write error occured.  Please note, that if
  103.   a write error disappeares after a retry operation, it's likely that the
  104.   defective area of the disk now is within the unused mfm gap and may show
  105.   again the next time you attempt to write to this track.
  106. - added command 'custom', which displays a list with addresses and the
  107.   corresponding names of the custom chip registers
  108. - fixed BRK instruction in 6502/65SC802/65SC816 assembler and disassembler.
  109.   In fact this is a 2-byte instruction with immediate byte operand now.
  110.   Note that on the 6502 this was just a 1-byte instruction.
  111. - implemented 'reserved' instruction $42 of 6502/65SC802/65SC816 assembler
  112.   and disassembler as 'wdm' with immediate byte operand.  That's how it was
  113.   described in a textfile I recently read.
  114. - the 6502/65SC802/65SC816 disassembler now comments the special SNES
  115.   hardware registers.
  116. - the exception handler now knows about additional MC68040 stack frames.
  117. - added commands 'settt0', 'settt1', 'settc', 'setsrp', 'setcrp', 'setdrp'
  118.   and 'setmmusr' to support immediate changes to the MMU configuration, if
  119.   either a MC68851 or a MC68030 MMU is available.  The command 'mmu' now
  120.   reports the current configuration instead of the values of startup time.
  121.  
  122.   the following changes were proposed by Kelly van Vliet from Holland:
  123. - 'cop' command added, which searches for copperlists.
  124. - 'imp' and 'exp' commands added, which crunch and decrunch memory using the
  125.   well known 'imploder'-algorithm.  The file "explode.S" on this disk
  126.   represents the decruncher's sourcecode, which you may use for your own
  127.   purposes.
  128. - the prompt '>' can no longer be deleted using the backspace key
  129. - in disassembly, instructions which cause an unconditional change of
  130.   program flow (bra, jmp, rte, rts, rtm, rtd, rtr) are followed by a
  131.   separating line
  132. - 'type' command added, which allows viewing textfiles without having to
  133.   load them to a specified memory address.  The cursor advances to the
  134.   beginning of the next line, if a line feed ($0A) occured, or the end of
  135.   the line was reached.  Text output can be canceled using the ESC-key and
  136.   does not advance, as long as the right mousebutton is pressed.
  137. - the keyfunction shift-cursorright no longer puts the cursor into the last
  138.   column.  Now the cursor is moved behind the last character of the current
  139.   line or right behind the instruction, if disassembly is active.
  140. - the BeerMon now is entirely position independent.  For that reason the
  141.   relocation procedure is no longer needed.  As a result, the exception
  142.   entry point is now located $16 bytes behind the regular entry point.
  143.   Of course you may still find the tool 'hunkwizard' useful to remove the
  144.   hunkstructure of the executable file.
  145. - the function keys no longer add a return character to the end of a
  146.   string.  If you define a function key using the command 'K' or the
  147.   preferences editor BMPE and want a return at the end of a string, you
  148.   now have to supply a trailing '|' character.
  149. - the command 'K' has been redefined to allow both " and ' to specify the
  150.   string.  As a result you may include strings embedded in "" withing a
  151.   function key definition (e.g. K F1 'f 0 80000 "DEFJ"').
  152. - the command '?' now accepts string parameters of 1 to 4 characters
  153.   length, which are embedded in either "" or '' quotes.  The ASCII notation
  154.   of the result is also reported.
  155. - added command 'fmode' which selects the way, results of the commands 'c'
  156.   and 'f' are reported.  Possible modes are table (as in the past), hexdump
  157.   or ASCII dump.
  158. - added commands 'bin', 'binw', 'binl', 'bint', 'binq' for binary dump with
  159.   8, 16, 32, 48 or 64 bits per line. As usual the dump can be edited.
  160. - the key combination shift-Ins (key "0" on numeric pad) toggles between
  161.   overwrite mode and insert mode
  162. - added command 'match' for displaying and clearing a 100-entry
  163.   matchbuffer.  This matchbuffer contains the resulting addresses of the
  164.   search and compare commands.
  165. - in disassembly, the address of a instruction is highlighted in the
  166.   following cases:
  167.   - a breakpoint is defined at this address.
  168.   - a search or compare command succeeded within this instruction, the
  169.     result is part of the matchbuffer.
  170. - fixed mouse-blanking bug within the command 'bpl'.
  171. - the command 'info' now also reports how many bytes may be saved on the
  172.   current disk (which depends on the selected filesystem).
  173. - BMPE updated to V0.13 using GadToolsBox 1.4
  174.   - removed AGA modes from 'Mode' cycle gadget; they became obsolete.
  175.   - added checkbox for toggling disk verify.
  176.   - now reflects the modified function key defaults.
  177.   - added workbench startup code, it may be started by icon now.
  178.   - previous preferences files may be used without changes.
  179.  
  180. - CHANGES made until V0.44 (oct 1992)
  181.  
  182. - BMPE updated to V0.12 using GadToolsBox 1.4
  183.   - cycle gadgets work with OS3.0, too.
  184.   - added STD/AA chipset selection to the 'Mode' cycle gadget.
  185.   - preferences file format remains unchanged.
  186. - added support for the A4000 AA chipset.  Due to the differences in
  187.   copperlist definitions, the BeerMon executable must be patched using the
  188.   BMPE tool.  The distributed version is set up in standard (including ECS)
  189.   mode. If you are lucky to own AA chips, you must select one of the AA
  190.   modes using the 'Mode' cycle gadget.  If you use the ECS mode of the AA
  191.   chipset, you must use a BeerMon, which has been set up for the standard
  192.   chipset, of course.
  193. - redefinded the meaning of "FORCE PAL" and "FORCE NTSC" in BMPE:
  194.   Both modify the BeamCon0 register of the AGNUS chip, which is vital one
  195.   if you normally use a mode with a horizontal scan rate other than 15KHz,
  196.   like e.g.  productivity mode.  The contents of this register can't be
  197.   read out, which resulted in a disastrous display, when you left the
  198.   BeerMon, because the scan rate remained at 15 KHz.  Now the BeerMon does
  199.   some magic stuff, tickeling intuition to rewrite BeamCon0 after leaving
  200.   the BeerMon and going back to the shell.  In the "AUTO" modes, BeamCon0
  201.   isn't modified at all, so this one doesn't need this "magic", but is
  202.   unsuitable  for  scan  rates  other  than  15KHz.  So ONLY use one of the
  203.   "FORCE" modes, if your WB is configured in a mode, other than PAL or
  204.   NTSC.
  205. - fixed detection of MC68040
  206. - improved  handling of MC68040 copyback mode
  207. - on the A3000 and A4000 the GARY chip is now set up for DSACK-timeout, so
  208.   you won't get any BUS error exceptions, when you access unpopulated
  209.   memory locations, like you do outside the BeerMon.  When leaving the
  210.   BeerMon,   the   previous   state  is  restored.
  211. - added movement in disassembly, hexdumps, ASCII dumps and copper dumps in
  212.   whole screen pages using shift-cursorup and shift-cursordown keys.
  213. - added 'famiplay' command which transfers organised binary data to a Super
  214.   Magic Drive console copier connected to the parallel port.  See cable
  215.   wiring at the end of this file.
  216. - changed 'ramsey' command to include chip version info (A3000/A4000 only).
  217. - added 'gary' command which reports information on the GARY chip
  218.   installed (A3000/A4000 only).
  219. - added MC68040/68881/2 floating point instructions to disassembler.
  220.   refer to the file M68881.asm for further information on these:
  221.   - FMOVE.f <ea>,FPn
  222.   - FSMOVE.f <ea>,FPn
  223.   - FDMOVE.f <ea>,FPn
  224.   - FMOVE.f FPm,FPn
  225.   - FMOVE.f FPn,<ea>
  226.   - FMOVE.P FPn,<ea>{#k}
  227.   - FMOVE.P FPm,<ea>{Dn}
  228.   - FMOVE.L FPcr,<ea>
  229.   - FMOVE.L <ea>,FPcr
  230.   - FMOVEM.X Dn,<ea>
  231.   - FMOVEM.X <ea>,Dn
  232.   - FMOVEM.X list,<ea>
  233.   - FMOVEM.X <ea>,list
  234.   - FMOVEM.L creglist,<ea>
  235.   - FMOVEM.L <ea>,creglist
  236.   with k being a signed factor in the range -64..63.
  237.   with Dn being any data register.
  238.   with FPcr being one of the FPU control registers: FPCR, FPSR, FPIAR.
  239.   with list being a combination of FPU data registers FPn separated by "/"
  240.   or "-".
  241.   with creglist being a combination of FPU control registers FPCR, FPSR,
  242.   FPIAR separated by "/".
  243.   with FPm, FPn being any floating point register.
  244.   with f being one of b, w, l, s, d, x, p in <ea>-mode and b, w, l, s in
  245.   register mode.
  246.  
  247. - CHANGES made until V0.43 (aug 1992)
  248.  
  249. - split up 'C' command into bitsum, bootsum, datasum and kicksum commands
  250. - added 'megasum' command, which calculates checksums of Sega Megadrive ROM
  251.   images
  252. - added 'famisum' command, which calculates checksums of Famicon ROM images
  253.   and reports some information on the ROM image.
  254. - added 'smdplay' and 'rawplay' commands which transfer organised and raw
  255.   binary data to a Super Magic Drive console copier connected to the
  256.   parallel port. See cable wiring at the end of this file.
  257. - added 'smd2raw' command which converts Super Magic Drive data to raw
  258.   binary data
  259. - added complete 6502/65SC802/65SC816 assembler and disassembler for those
  260.   who  are  interested  in  the  machinecode of the SNES/Super Famicon game
  261.   console.  Disassemble the file 'G65816' using the 'u' command to view all
  262.   possible instructions of these CPUs.
  263.  
  264. CHANGES made until V0.42 (july 1992)
  265.  
  266. - added support for the HD-compatible disk drive Chinon FB357A, which is
  267.   used in recent A3000 models.  If such a drive is detected, all standard
  268.   DD disks inserted are treated as before, while HD disks are handled
  269.   with twice the standard number of sectors per track.  All disk-related
  270.   commands like 'format', 's' and 'S' take care of this difference.  As a
  271.   side effect, the internal disk-DMA buffer constantly is twice as big as
  272.   before.
  273. - the 'M' command has been redesigned to allow the HD bitmap information to
  274.   fit also on a NTSC screen.  The disktype,filesystem and diskinformation
  275.   previously reported by this command can now accessed with the new 'info'
  276.   command.
  277. - the disassembler now supports the complete set of <ea>-addressing modes.
  278.   Located on this disk is a file named NewModes.asm, which shows most of
  279.   the additions. Here is a small excerpt:
  280.   - move.l ([address16,pc],Rn.s*k,od.w),Dn
  281.   - move.l ([address16,pc],Rn.s*k,od),Dn
  282.   - move.l ([address32,pc],Rn.s*k,od.w),Dn
  283.   - move.l ([address32,pc],Rn.s*k,od),Dn
  284.   - move.l ([address16,zpc],Rn.s*k,od.w),Dn
  285.   - move.l ([address16,zpc],Rn.s*k,od),Dn
  286.   - move.l ([address32,zpc],Rn.s*k,od.w),Dn
  287.   - move.l ([address32,zpc],Rn.s*k,od),Dn
  288.   - move.l ([id.w,An],Rn.s*k,od.w),Dn
  289.   - move.l ([id.w,An],Rn.s*k,od),Dn
  290.   - move.l ([id,An],Rn.s*k,od.w),Dn
  291.   - move.l ([id,An],Rn.s*k,od),Dn
  292.   - move.l ([address16,pc,Rn.s*k],od.w),Dn
  293.   - move.l ([address16,pc,Rn.s*k],od),Dn
  294.   - move.l ([address32,pc,Rn.s*k],od.w),Dn
  295.   - move.l ([address32,pc,Rn.s*k],od),Dn
  296.   - move.l ([address16,zpc,Rn.s*k],od.w),Dn
  297.   - move.l ([address16,zpc,Rn.s*k],od),Dn
  298.   - move.l ([address32,zpc,Rn.s*k],od.w),Dn
  299.   - move.l ([address32,zpc,Rn.s*k],od),Dn
  300.   - move.l ([id.w,An,Rn.s*k],od.w),Dn
  301.   - move.l ([id.w,An,Rn.s*k],od),Dn
  302.   - move.l ([id,An,Rn.s*k],od.w),Dn
  303.   - move.l ([id,An,Rn.s*k],od),Dn
  304.   with address16 being an address which can be reached using 16 Bit offset
  305.   with address32 being an address using 32 Bit offset
  306.   with id and od being values in 16 or 32 Bit format
  307.   with Rn.s*k being either an address- or a data register of either word or
  308.   longword size and scaled with the optional scale factor of 2,4 or 8.
  309.   NOTE:zpc represents a programcounter which is assumed to be 0 for the
  310.   address calculation.  Each item inside the outer brackets can be omitted
  311.   to create a new addressing mode like e.g.:
  312.   - move.l ([address16,pc]),Dn
  313.   - move.l ([An],Rn.s*k),Dn
  314.   - move.l ([]),Dn
  315.   NOTE:because of the obvious complexity of these modes and the parsing
  316.   code needed, the assembler doesn't support them until major rework is
  317.   done.  Besides you are advised to get yourself the Programmers Reference
  318.   Manual M68000PM/AD from a Motorola distributor.  This unique manual
  319.   gives many informations on the MC68000/68010/68020/68030/68040/68851 and
  320.   MC68881/68882 instructions.  Possibly you'll enjoy the MC68030UM/AD User
  321.   Manual as well, because it contains complete informations on all
  322.   addressing modes.
  323. - added CPU32 instructions to assembler and disassembler:
  324.   - BGND
  325.   - LPSTOP  #value
  326.   - TBLU.s  Dm:Dn,Dx
  327.   - TBLUN.s Dm:Dn,Dx
  328.   - TBLS.s  Dm:Dn,Dx
  329.   - TBLSN.s Dm:Dn,Dx
  330.   - TBLU.s  <ea>,Dx
  331.   - TBLUN.s <ea>,Dx
  332.   - TBLS.s  <ea>,Dx
  333.   - TBLSN.s <ea>,Dx  ;s=b/w/l
  334.   NOTE: CPU32 is an universal CPU core compatible to the MC680x0 family,
  335.   which gets used in the MC683xx controller series.
  336. - added MC68040 instructions to assembler and disassembler:
  337.   - PFLUSHN (An)
  338.   - PFLUSHAN
  339.   - MOVE16 (address),(An)
  340.   - MOVE16 (address),(An)+
  341.   - MOVE16 (An),(address)
  342.   - MOVE16 (An)+,(address)
  343. - added MC68040/68881/2 floating point instructions to disassembler.
  344.   refer to the file M68881.asm for further information on these:
  345.   - FABS.f op1          FSABS.f op1         FDABS.f op1
  346.   - FACOS.f op1
  347.   - FADD.f op2          FSADD.f op2         FDADD.f op2
  348.   - FASIN.f op1
  349.   - FATAN.f op1
  350.   - FATANH.f op1
  351.   - FCMP.f op2
  352.   - FCOS.f op1
  353.   - FCOSH.f op1
  354.   - FDIV.f op2          FSDIV.f op2         FDDIV.f op2
  355.   - FETOX.f op1
  356.   - FGETEXP.f op1
  357.   - FGETMAN.f op1
  358.   - FINT.f op1
  359.   - FINTRZ.f op1
  360.   - FLOG10.f op1
  361.   - FLOG2.f op1
  362.   - FLOGN.f op1
  363.   - FLOGNP1.f op1   (Devpac V3.02 has a bug here)
  364.   - FMOD.f op2
  365.   - FMUL.f op2          FSMUL.f op2         FDMUL.f op2
  366.   - FNEG.f op1          FSNEG.f op1         FSNEG.f op1
  367.   - FREM.f op2
  368.   - FSCALE.f op2
  369.   - FSGLDIV.f op2
  370.   - FSGLMUL.f op2
  371.   - FSIN.f op1
  372.   - FSINCOS.f <ea>,FPc:FPs                  FSINCOS.f FPm,FPc:FPs
  373.   - FSINH.f op1
  374.   - FSQRT.f op1         FSSQRT.f op1        FDSQRT.f op1
  375.   - FSUB.f op2          FSSUB.f op2         FDSUB.f op2
  376.   - FTAN.f op1
  377.   - FTANH.f op1
  378.   - FTENTOX.f op1
  379.   - FTST.f <ea>                             FTST.f FPm
  380.   - FTWOTOX.f op1
  381.   with FPm, FPc, FPs being any floating point register
  382.   with op1 being one of: <ea>,FPm  -  FPm,FPc  -  FPm 
  383.   with op2 being one of: <ea>,FPm  -  FPm,FPc
  384.   with f being one of b, w, l, s, d, x, p in <ea>-mode and b, w, l, s in
  385.   register mode.
  386. - fixed assembly and disassembly of these instructions:
  387.   - PTESTR (An)     (Bug in Devpac V3.02)
  388.   - PTESTW (An)     (Bug in Devpac V3.02)
  389.  
  390. CHANGES made until V0.41 (may 1992)
  391.  
  392. - hardware schematics needed some changes: (see HardIFF and HardIFF2)
  393.   - 74F138 input G1 must be tied to _R/W instead of R/_W (Thanx Taipan/UFO)
  394.   - both pins 30 and 32 of the RAMs should be connected to +5V, as some
  395.     static RAMS use pin 30 as a second chip-select input.
  396. - support for international filesystem (new OS2.0 DOSTypes DOS\2 and DOS\3)
  397.   added to all filesystem related commands.  The following commands have
  398.   visibly changed:
  399.   - 'format', see commandlist for changes in parameters
  400.   - 'install', see commandlist for changes in parameters
  401.   - 'M', now also reports the filesystem (not international/international)
  402.   NOTE: the BeerMon recognises the filesystem of a disk by examining the
  403.   bootblock.  Within AmigaDOS (read:outside the BeerMon), DOS\2 and DOS\3
  404.   disks can ONLY be used with OS 2.0 or higher.
  405. - completely rewritten clockchip handling, both the standard (A500/A2000)
  406.   MSM6242 RS clockchip and the new A3000/A4000 clockchip can be used for
  407.   creation date of files and disks, if they are detected and they seem to
  408.   be functional.  The century leap is also handled, so you may use the
  409.   BeerMon until the end of the year 2077 :-)
  410. - presense of a MC68040 is detected
  411. - added MC68040 instructions to assembler and disassembler:
  412.   - MOVEC reg,Rn with reg being one of SRP,URP,TC,DTT0,DTT1,ITT0,ITT1
  413.   - MOVEC Rn,reg with reg being one of SRP,URP,TC,DTT0,DTT1,ITT0,ITT1
  414.   - CINVA mode   with mode being one of NC,DC,IC,BC
  415.   - CPUSHA mode  with mode being one of NC,DC,IC,BC
  416.   - CINVP mode,(An)  with mode being one of NC,DC,IC,BC
  417.   - CPUSHP mode,(An) with mode being one of NC,DC,IC,BC
  418.   - CINVL mode,(An)  with mode being one of NC,DC,IC,BC
  419.   - CPUSHL mode,(An) with mode being one of NC,DC,IC,BC
  420.   - MOVE16 (Am)+,(An)+
  421.   - PTESTR (An)
  422.   - PTESTW (An)
  423.   - PFLUSH (An)
  424.   - PFLUSHA!  (named this way instead of PFLUSHA because of name conflict
  425.     with the incompatible MC68851/MC68030-MMU PFLUSHA instruction)
  426. - added MC68851 MMU (only) instructions to assembler and disassembler:
  427.   - PVALID An,<ea>
  428.   - PFLUSHR <ea>
  429.   - PFLUSHS #n,#m
  430.   - PFLUSHS Dn,#m
  431.   - PFLUSHS reg,#m with reg being either SFC or DFC
  432.   - PRESTORE <ea>
  433.   - PSAVE <ea>
  434.   - PScc <ea>
  435.   - PBcc.s address ,s=w/l
  436.   - PDBcc Dn,address
  437.   - PTRAPcc
  438.   - PTRAPcc.s #value ,s=w/l
  439.   where cc is one of the MMU conditioncodes:
  440.   bs,bc,ls,lc,ss,sc,as,ac,ws,wc,is,ic,gs,gc,cs,cc
  441.   - PMOVE mmur,<ea> with mmur being one of PSR,PCSR,CAL,VAL,SCC,AC
  442.   - PMOVE <ea>,mmur with mmur being one of PSR,PCSR,CAL,VAL,SCC,AC
  443. - added FPU instructions to assembler and disassembler:
  444.   - FBcc.s address ,s=w/l
  445.   where cc is one of the FPU conditioncodes:
  446.   f,eq,ogt,oge,olt,ole,ogl,or,un,ueq,ugt,uge,ult,ule,ne,t
  447.   sf,seq,gt,ge,lt,le,gl,gle,ngle,ngl,nle,nlt,nge,ngt,sne,st
  448. - changed disassembly of short branches from Bcc.S to Bcc.B, because this
  449.   is the official syntax. the assembler accepts both versions.
  450. - 'vc' command parameter handling fixed.
  451. - assembler/disassembler validation sources ported from OMA2.0 assembler to
  452.   Devpac V3.02 (because of horrid OMA bugs :-)
  453. - BMPE preferences editor was redesigned with GadToolsBox V1.3, so the
  454.   version bumped to V0.11
  455.  
  456. CHANGES made until V0.40 (march 1992)
  457.  
  458. - external preferences editor BMPE added, which allows you to define your
  459.   personal
  460.   - screenmode (PAL/NTSC, Force PAL, Force NTSC)
  461.   - colours (back- and foreground RGB values in hexadecimal notation)
  462.   - keymap (german or american layout)
  463.   - key repeat rate (fast, medium, slow)
  464.   - cpu-restrictions (standard or economy, use economy ONLY if you own a
  465.     'crippled' CPU MC68EC030 such as the infamous VXL board, which is known
  466.     to miss a MMU)
  467.   - 10 functionkeys
  468.   The settings can be saved and loaded according to the Prefs path you
  469.   specify.  A modify-function then performs the patching of BeerMon
  470.   executables, which are not older than this version V0.40
  471.   NOTE:  BMPE NEEDS OS 2.0!  - the gadtools.library and the GadToolsBox are
  472.   too good to be ignored, and it's time to upgrade to OS2.0 anyway :-)
  473. - added patch area to BeerMon, which gets used by BMPE
  474. - the MMU related commands now tell you if you don't have one (just in case
  475.   you didn't know it :-)
  476. - 'mmu' command reports DRP contents, if a MC68851 MMU is installed
  477. - added MMU instructions to assembler and disassembler:
  478.   - PMOVE DRP,<ea> (MC68851 MMU only)
  479.   - PMOVE <ea>,DRP (MC68851 MMU only)
  480. - 'r' command now only reports those registers and flags , which are allowed
  481.   with the detected CPU
  482. - occupy and exor commands changed, you now may use o, ow, ol, e, ew or el
  483.   according to your intention to use a byte, word or longword argument
  484. - history function now ignores empty commandlines                   ^ö^ HI
  485. - when aborting the 'fi' function, the current address is reported.  " PBA!
  486. - the help key now increments the help page each time it is pressed
  487. - checksum command 'C' now also calculates 256/512 KB kickstart checksums
  488. - 'i' command now shows full $100 bytes of the original vector table.
  489.  
  490. CHANGES made until V0.39 (february 1992)
  491.  
  492. - shift-tab keyfunction added, deletes all characters from current cursor
  493.   upto the right border
  494. - history has been added: shift-keypad-8/2 (up/down) recalls upto 10 lines
  495. - cursor movement extended: shift-keypad-7/1 (home/end) places cursor in
  496.   the first column of the first/last row
  497. - nop command added, it simply sets the specified number of NOP instructions
  498. - mmuon and mmuoff commands added.  These allow enabling/disabling of
  499.   address translations (so you may examine the A3000 ROM or deactivate other
  500.   MMU setups)
  501.   BTW:keep your hands of those low cost turboboards using the MC68EC030 or
  502.   even the MC68EC040, sooner of later you'll regret that this CPU doesn't
  503.   have a MMU!
  504. - finally adding/listing/removing of breakpoints added
  505. - completely rewritten exception handler; now works on MC68000/10/20/30 CPU
  506.   and also handles FPU/MMU exceptions
  507. - cls added, clears the screen
  508. - find instruction command added. This allows you searching for special
  509.   instructions using the * and ? joker.
  510.   Just try something like 'fi fc0000 fc1000 "move*d?,a"'
  511. - MOVE <ea>,SR will be disassembled correctly again.
  512.  
  513. CHANGES made until V0.38 (january 1992)
  514.  
  515. - presence of a MC68851 MMU or a MC68030-built-in-MMU is detected
  516. - 'r' command now also explains the CACR settings
  517. - 'R' command added, reports FPU registers in hex and scientific notation
  518. - 'mmu' command added, reports MMU registers and their bit settings
  519. - 'ramsey' command added, (only useful if you have an A3000)
  520. - renamed the 'keymap' command back to 'k', someone really seems to use it :-)
  521. - fixed a V0.36+ bug: 'x' easily crashed on machines without MC68030
  522. - effective address info ('dv') no longer ignores index scaling
  523. - FDxx Dx,label displacement bug fixed (another bug in OMA2.0)
  524. - added FPU instructions to assembler and disassembler:
  525.   - FNOP
  526.   - FMOVECR #m,FPn with m being one of 0,$b-$f,$30-$3f
  527. - added MMU instructions to assembler and disassembler:
  528.   - PMOVE mmur,<ea> with mmur being one of SRP,CRP,TT0,TT1,TC,MMUSR
  529.   - PMOVE <ea>,mmur with mmur being one of SRP,CRP,TT0,TT1,TC,MMUSR
  530.   - PMOVEFD <ea>,mmur with mmur being one of SRP,CRP,TT0,TT1,TC
  531.   - PFLUSH #n,#m
  532.   - PFLUSH Dn,#m
  533.   - PFLUSH reg,#m with reg being either SFC or DFC
  534.   - PFLUSHA
  535.   - PLOADR #n,<ea>
  536.   - PLOADW #n,<ea>
  537.   - PTESTR #n,<ea>,#m,An
  538.   - PTESTW #n,<ea>,#m,An
  539. - lowmem for workspace and hunk-copymem routine moved from $c0 to $100 to
  540.   allow handling of FPU and MMU traps in a future version
  541. - if EXEC isn't corrupted, any even VBR value is allowed
  542.   NOTE:you MUSTN'T change VBR within a routine executed with 'g'
  543.   NOTE:if you change the VBR with 'r', it won't be set until 'g' is used
  544. - fixed bug in resident list display (/9), occured if bit 31 was set.
  545. - on startup, the completion of the current blitter operation is waited for.
  546.  
  547. CHANGES made until V0.37 (december 1991)
  548.  
  549. - the OS2.0 hardlink feature is now fully supported with both OFS and FFS.
  550.   hardlinks and dirlinks are reported when using the 'dir' command.
  551.   the commands 'cd','del','L' work with and without links in the usual way.
  552. - Workspace and BackupMem allocation procedure has been changed due to
  553.   popular demand. Don't miss reading the decription of the 'W' command.
  554. - finally the BeerMon both works on PAL and NTSC Amigas.  The NTSC mode is
  555.   derived from bit 12 of VPOSR, so the agnus jumper is considered and not
  556.   the BeamCon0 settings.
  557. - the presence of 1.5 MB graphics memory is detected, which is a possible
  558.   configuration on the A500 plus.
  559. - the presence of a FPU and its type (MC68881/2) is reported
  560. - fixed bug where 'dir f' reported hashchainkey instead of the
  561.   fileheaderextension key.
  562. - exit function 'X' now clears the Chip memory, because the OS2.0 doesn't
  563.   do it anymore. The fillvalue is $ffffffff.
  564. - CloseLibrary-bug in OS2.04 bootblock removed.
  565.  
  566. CHANGES made until V0.36 (november 1991)
  567.  
  568. - fixed bug in ASCII-edit part of the 'm' function
  569. - fixed filesystem bug (fileheaderextension blocks were not 'official' style)
  570. - renamed some ECS registers (the new hardware reference manual is out now :-)
  571. - relaxed CIA timing values (any A1000ers out there with MatsuShit(a) drive?)
  572. - major assembler/disassembler update from old Motorola syntax to new one
  573.   quick docs: offset(An)      changed to (offset,An)
  574.               offset(An,Rm.s) changed to (offset,An,Rm.s)   ,s=w/l
  575.               address(PC)     changed to (address,PC)
  576.               offset(PC,Rn.s) changed to (address,PC,Rn.s)  ,s=w/l
  577.               address         changed to (address)
  578.               address.w       changed to (address).w
  579. - scaling now is possible:    (address,An,Rm.s*k)           ,k=1,2,4,8
  580. - added FPU instructions:     FDBcc Dx,address    FRESTORE <ea>
  581.               FSAVE <ea>      FTRAPcc             FTRAPcc.s #value ,s=w/l
  582.               FScc <ea>
  583.   where cc is one of the FPU conditioncodes:
  584.   f,eq,ogt,oge,olt,ole,ogl,or,un,ueq,ugt,uge,ult,ule,ne,t
  585.   sf,seq,gt,ge,lt,le,gl,gle,ngle,ngl,nle,nlt,nge,ngt,sne,st
  586. - disassembler suppresses leading 0's (e.g. '4' instead of '$0000004')
  587. - moved column of disassembler operands ('ftrapngle.l #k' looks so nice :-)
  588. - now detects and supports MC68000/10/20/30
  589. - vbr,sfc,dfc,msp,cacr,caar are handled correctly if they are available
  590.   (vbr should remain 0 until the ultimate solution has been figured out)
  591. - support for A2000A clockchip ($d80000) had to be removed, because it
  592.   trapped on my A3000
  593. - no more interference of backupmem-search with CPU data caching
  594. - support for 2MB chipmem. if available, the screen defaults to $1f4000
  595. - cleaned up grabbing of the system a bit and the return to CLI a bit more.
  596.   (but you still shouldn't use it with enforcer :-)
  597. - improved mouse-acceleration in memory view mode ('b')
  598. - power-led blink removed (wasn't that difficult...)
  599. - the reset command ('X') now works with Kick 1.2/1.3/2.04
  600.  
  601. CHANGES made since V0.28 (june 1990) upto this version 0.35 (oct 1991)
  602.  
  603. - the BeerMon status is now: (C) by Carnivore/BeerMacht, but FREEWARE.
  604. - dramatic increase in scrolling speed
  605. - finally debugged 'del' function
  606. - minor debugging of (dis)assembler
  607. - diskroutines now use timer instead of delay loops.
  608. - FastFileSystem and OldFileSystem support for disks
  609. - Copper-assembler/disassembler with symbolic ECS registers
  610. - text-snapping with right mousebutton
  611. - second screen, swapping with 'shift-help'
  612. - a help-function with 'help'
  613. - added MC68010 instructions
  614.   NOTE: currently on startup the VBR register MUST be set to zero (default).
  615.   So don't use a 'MoveVBR'-type programm.  The new registers are currently
  616.   ignored, if you execute a program.  You need to set them by yourself
  617.   (e.g.  MOVEC a0,vbr)
  618. - added MC68020 instructions (currently without extended <EA> and
  619.   coprocessor instructions).  Disassemble the file 'DemoCode' to get an
  620.   idea of it.  The sourcecode to 'DemoCode' is part of this distribution.
  621. - added 32 bit support for most functions
  622. - invalid syncs are reported
  623. - syncs can be determined (or guessed?)
  624. - format and install commands added
  625. - time and date infos are set when using format, save
  626. - start and endaddress are saved as a filecomment and are shown using the
  627.   dir command. So typing 'L' + return loads the file to the propper address.
  628. - more info is given using the 'dir f' command
  629. - scrolling backwards is added, usefull in disassembly (CPU/Copper) and the
  630.   memory dump commands
  631. - nice pic on startup (well, it uses no valueable ram, it's my DMAbuffer :-)
  632. - the code grew more and more, therefor a complete new hardware design, now
  633.   offering 256 KB of static memory.
  634.   With it $BFDxxx, $BFExxx and $DFFxxx register values appear at $F3Dxxx!
  635.   BeerMon may support this feature some day.
  636. - on reset-entry, available Zorro-II(I) boards can be configured with the
  637.   config command (well, there is still no HD-support, should I add the
  638.   ability to use AMAX-HDdrivers?  Uummmphh, not now ;-)
  639. - Bcc.L (MC68000) has been changed to Bcc.W (because .L implies the MC68020+
  640.   32 bit offset branches)
  641. - the sourcecode isn't part of this distribution anymore, portions of it
  642.   may or may not be released, if someone asks me for it.
  643.  
  644. and more to mention, but I'm a bit lasy...  so wait for the next update
  645. (more frequent than in the past) and spend me some beer if we happen to
  646. meet :-)
  647.  
  648. ···········································································
  649.  
  650. now some general notes about the BeerMon...
  651.  
  652. the mouse:    enables you to set the cursor (left mousebutton). Pressing
  653.         the right mousebutton stops any textoutput on screen, until
  654.         it is released again. If you press the right mousebutton
  655.         when no function is activated, the string below the
  656.         mousepointer is copied to the current cursor position.
  657. escape key:    aborts any command (even load/save...)
  658. tab key:    sets the cursor to next item of data in a block (skips
  659.         spaces, is useful in directory and hexdump).
  660. shift-tab    deletes all characters between the current cursor position
  661.         and ending with the last column.
  662. help key:    a brief command summary, pressing it multiple times advances
  663.         the page.
  664. shift-help    swap screens 1 and 2
  665. backspace    behaves as usual
  666. shift-backspace    clears screen del behaves as usual shift-del inserts spaces
  667. shift-keypad-8    goes backwards inside the history buffer.  The history depth
  668.         is 10 lines.
  669. shift-keypad-2    goes forwards inside the history buffer
  670. shift-keypad-0    toggles between overwrite mode and insert mode
  671. shift-cursor    moves the cursor to the limit of the selected direction, with
  672.         the exception of shift-cursorright, where the cursor is
  673.         placed behind the last character of the current line.
  674.         if the cursor has already been at the upper or lower limit,
  675.         the following commands are executed in pagemode:
  676.         ASCII dump, hex dump, binary dump, copper dump, MC680x0
  677.         and 6502/65SC802/65SC816 disassemblers.
  678. shift-keypad-7    moves the cursor to the first column of the first row
  679. shift-keypad-1    moves the cursor to the first column of the last row
  680. muliate:    the standard mode which you usualy would enter, without
  681.         freezing.
  682. freezing:    is in work, not yet finished, but seems to become funky.
  683. the display:    currently in pal, but there will be other options in future.
  684. the keymap:    defaults to german keymap, but can be changed with "k"
  685. CPU:        currently MC68000/10/20/30/40 are tested, the MC68010+ might
  686.         get useful in future due to the vector base capability to
  687.         trick some protections vomiting on the those pointers around
  688.         $000xxx (full tracing of every prg may become possible).
  689. agnus:        new angus chip is recognized and may be used with 1, 1.5 or
  690.         2MB chip memory (-> play sound, workspace).
  691.  
  692. well, now we come to the command list, < > means optional parameter(s)...
  693. -----------------------------------------------------------------------------
  694.  
  695.  m <addr1> <addr2>
  696.       gives a hexdump as well as display in ASCII of specified or following
  697.    memory locations.  Both can be edited using the cursor.
  698.  
  699.  a <addr1> <addr2>
  700.       gives a display of specified or following memory locations in ASCII.
  701.    This can easily be edited using the cursor.
  702.  
  703.  bin <addr1> <addr2>
  704.       gives a binary dump with 8 bits per line of specified or following
  705.    memory locations.  This can easily be edited using the cursor.
  706.  
  707.  binw <addr1> <addr2>
  708.       gives a binary dump with 16 bits per line of specified or following
  709.    memory locations.  This can easily be edited using the cursor.
  710.  
  711.  binl <addr1> <addr2>
  712.       gives a binary dump with 32 bits per line of specified or following
  713.    memory locations.  This can easily be edited using the cursor.
  714.  
  715.  bint <addr1> <addr2>
  716.       gives a binary dump with 48 bits per line of specified or following
  717.    memory locations.  This can easily be edited using the cursor.
  718.  
  719.  binq <addr1> <addr2>
  720.       gives a binary dump with 64 bits per line of specified or following
  721.    memory locations.  This can easily be edited using the cursor.
  722.  
  723.  ? value <operation value> <operation value> <...>
  724.       returns the result of a calculation.  If there is no preceeding
  725.    character, "value" is interpreted as a hexadecimal value.  If the
  726.    preceeding character is a '#', the value is interpreted as a decimal
  727.    value.  If "value" is embedded in either "" or '' quotes, it is
  728.    interpreted as an ASCII parameter.  The operations can be one of the
  729.    following:
  730.  
  731.             +   add to
  732.             -   subtract 
  733.             *   multiply by
  734.             /   divide by
  735.             !   or with
  736.             &   and with
  737.             =   exor with
  738.             <   shift left "value" times
  739.             >   shift right "value" times
  740.  
  741.    The result is returned as a hexadecimal, decimal and binary values and
  742.    in its ASCII representation.
  743.  
  744.  c addr1 addr2 addr3
  745.       compares the memory beginning with "addr1" and ending with "addr2"-1
  746.    with the memory locations starting at "addr3".  The result is a list of
  747.    all memory locations which are different.
  748.    The address of such a memory region will be stored in the matchbuffer,
  749.    as long as there is a free entry.
  750.  
  751.  t addr1 addr2 addr3
  752.       tranfers the memory beginning with "addr1" and ending with "addr2"-1
  753.    to the memory locations starting at "addr3"
  754.  
  755.  imp addr1 addr2 <mode>
  756.       compresses the memory region beginning with "addr1" and ending with
  757.    "addr2"-1.  The parameter "mode" in the range from 0 to b selects the
  758.    implode quality, which influences the time needed for operation.  If no
  759.    parameter "mode" is specified, a default mode "0" is used.  While
  760.    imploding a progress indicator shows the number of bytes to go and the
  761.    bytes which were already saved.  Imploding can be aborted by pressing
  762.    the "esc"-key.  If the memory region cannot be imploded, a message will
  763.    be given.  After imploding the total number of saved bytes and the
  764.    location of the imploded data is reported.  Please note that this
  765.    command always modifies the specified memory region.
  766.  
  767.  exp addr
  768.       decompresses the memory region beginning with "addr", if seems to
  769.    contain valid imploded data.  After exploding the location of the
  770.    exploded data is reported.  If you want to use imploded data for your
  771.    own purposes, you may use the sourcecode named "explode.S" on this disk.
  772.  
  773.  nop addr num
  774.       fills the memory beginning with "addr" with the specified number "num"
  775.    of NOP instructions ($4E71).
  776.  
  777.  o addr1 addr2 byte
  778.       fills the memory beginning with "addr1" and ending with "addr2"-1
  779.    with the specified one-byte value "byte".
  780.  
  781.  ow addr1 addr2 word
  782.       fills the memory beginning with "addr1" and ending with "addr2"-1
  783.    with the specified two-byte value "word".
  784.  
  785.  ol addr1 addr2 long
  786.       fills the memory beginning with "addr1" and ending with "addr2"-1
  787.    with the specified four-byte value "long".
  788.  
  789.  e addr1 addr2 byte
  790.       performs an exor operation with the memory beginning with "addr1" and
  791.    ending with "addr2"-1 using the specified one-byte value "byte".
  792.  
  793.  ew addr1 addr2 word
  794.       performs an exor operation with the memory beginning with "addr1" and
  795.    ending with "addr2"-1 using the specified two-byte value "word".
  796.  
  797.  el addr1 addr2 word
  798.       performs an exor operation with the memory beginning with "addr1" and
  799.    ending with "addr2"-1 using the specified four-byte value "long".
  800.  
  801.  f addr1 addr2 byte <byte> <byte> <...>
  802.       searches for one to 14 bytes beginning with "addr1" and ending with
  803.    "addr2"-1.  The result is a list of all memory locations where the
  804.    specified byte or sequence can be found.
  805.    The address of the sequence will be stored in the matchbuffer, as
  806.    long as there is a free entry.
  807.  
  808.  
  809.  f addr1 addr2 "text"
  810.       searches for a text of up to 14 characters length beginning with
  811.    "addr1" and ending with "addr2"-1.  The result is a list of all memory
  812.    locations where the specified text can be found.
  813.    The address of the sequence will be stored in the matchbuffer, as
  814.    long as there is a free entry.
  815.  
  816.  fmode [0|1|2]
  817.       selects the way the results of the commands 'f' and 'c' are
  818.    displayed.  A parameter '0' selects tabular output of the addresses.
  819.    A parameter '1' selects hexadecimal output similar to the command 'm'.
  820.    A parameter '2' selects ASCII output similar to the command 'a'.
  821.  
  822.  fi addr1 addr2 "pattern*?"
  823.       searches for a fragment of disassembled instructions beginning with
  824.    "addr1" and ending with "addr2"-1. An ending '*' joker is obsolete.
  825.    Example: if you use the pattern "*q.w*1,(?,?0,d1.w)" 
  826.    any occurence of these instruction could be shown:
  827.        ADDQ.W #1,(2,A0,D1.W) as well as SUBQ.W #1,(9,D0,D1.W)
  828.    When the 'fi' function is aborted, the current address is shown.
  829.    The address of the instruction will be stored in the matchbuffer, as
  830.    long as there is a free entry.
  831.  
  832.  F addr
  833.       searches for all conditional branch-instructions relatively accessing
  834.    the specified address.  Any occurence is shown in disassembled form.
  835.    Possible instructions would be:
  836.  
  837.          BEQ.B/W $xx
  838.          BRA.B/W $xx
  839.          BSR.B/W $xx
  840.          DBF Dn,$xx ...
  841.  
  842.    The address of the instruction will be stored in the matchbuffer, as
  843.    long as there is a free entry.
  844.  
  845.  F addr pc
  846.       searches for all instructions accessing the specified address using
  847.    the pc-relative addressing-mode.  Any occurence is shown in disassembled
  848.    form.  Possible instructions would be:
  849.  
  850.          LEA $xx(PC),Ax
  851.          JSR $xx(PC)
  852.          MOVE.B/W/L $xx(PC),xx ...
  853.  
  854.    The address of the instruction will be stored in the matchbuffer, as
  855.    long as there is a free entry.
  856.  
  857.  p addr1 addr2 <period>
  858.       plays DMA-sound using the chip memory locations beginning with
  859.    "addr1" and ending with "addr2".  The current address of the sound DMA
  860.    is shown while playing the sound.  If no period is specified a period of
  861.    $100 is used.  The length of sounddata to be played is not limited to
  862.    128 KB.
  863.  
  864.  r <register value>
  865.       displays current CPU-register contents and flags if no parameters are
  866.    given.  Only those registers and flags which are valid for the installed
  867.    cpu are shown.  If register and value are specified the register is
  868.    modified accordingly.  Possible registers are:
  869.  
  870.          D0 - D7
  871.          A0 - A7
  872.          VBR (new with MC68010 - shouldn't be changed without reason)
  873.          SFC (new with MC68010)
  874.          DFC (new with MC68010)
  875.          CACR (new with MC68020, extended with MC68030 - see note)
  876.          CAAR (MC68020 and MC68030 only)
  877.          USP
  878.          ISP (formerly SSP on MC68000)
  879.          MSP (new with MC68020 - note, that EXEC doesn't initialize this one)
  880.          SR (extended with MC68020) - see note) 
  881.  
  882.    note: SR explanation (MC68000+)
  883.   680x0  bit - function
  884.      0   #15 - T1, Trace 1
  885.      2   #14 - T0, Trace 0
  886.      0   #13 - S, Supervisor Stackpointer
  887.      2   #12 - M, Master Stackpointer
  888.      0   #10 - \
  889.      0 ..#8  - /  Interrupt Mask
  890.      0   #4  - X, Extend Flag
  891.      0   #3  - N, Negative Flag
  892.      0   #2  - Z, Zero Flag
  893.      0   #1  - V, Overflow Flag
  894.      0   #0  - C, Carry Flag
  895.  
  896.    note:CACR explanation (MC68020)
  897.          bit - function
  898.          #3  - CI, Clear Instruction Cache           \
  899.          #2  - CEI, Clear Entry in Instruction Cache /reads back 0
  900.          #1  - FI, Freeze Instruction Cache
  901.          #0  - EI, Enable Instruction Cache
  902.  
  903.    note:CACR explanation (MC68030)
  904.          #13 - WA, Write Allocate (should be set)
  905.          #12 - DBE, Data Burst Enable
  906.          #11 - CD, Clear Data Cache           \
  907.          #10 - CED, Clear Entry in Data Cache /reads back 0
  908.          #9  - FD, Freeze Data Cache
  909.          #8  - ED, Enable Data Cache
  910.          #4  - IBE, Instruction Burst Enable
  911.          #3  - CI, Clear Instruction Cache           \
  912.          #2  - CEI, Clear Entry in Instruction Cache /reads back 0
  913.          #1  - FI, Freeze Instruction Cache
  914.          #0  - EI, Enable Instruction Cache
  915.  
  916.    note:CACR explanation (MC68040)
  917.          #31 - DE, Enable Data Cache
  918.          #15 - IE, Enable Instruction Cache
  919.  
  920.  R
  921.       displays current FPU-register contents. Reported are:
  922.  
  923.          FP0 - FP7 in 96(80) bit extended real notation.  Signed scientific
  924.                    notation with SNAN/NAN/INFINITY is also reported, if a
  925.                    FPU MC68881/2 is installed.
  926.          FPCR      exception mask, mode control
  927.              bit - function
  928.              #15 - BSUN, Branch/Set on UNordered
  929.              #14 - SNAN, Signalling Not A Number
  930.              #13 - OPERR, OPerand ERRor
  931.              #12 - OVFL, OVerFLow
  932.              #11 - UNFL, UNderFLow
  933.              #10 - DZ, Divide by Zero
  934.              #9  - INEX2, INEXact operation
  935.              #8  - INEX1, INEXact decimal input
  936.              #7  - \           0          0        1
  937.              #6  - /PRECision  0 eXtended 1 Single 0 Double
  938.              #5  - \           0      0      1       1
  939.              #4  - /RND, round 0 Next 1 Zero 0 Minus 1 Plus
  940.  
  941.          FPSR      condition code,quotient byte,exception,accrued exception
  942.              bit - function
  943.              #27 - N, Negative
  944.              #26 - Z, Zero
  945.              #25 - I, Infinite
  946.              #24 - NAN, Not A Number
  947.              #23 - S, quotient Sign
  948.              #22 - Q, Quotient 
  949.          ... #16 -    byte (7 least significant bits)
  950.              #15 - BSUN, Branch/Set on UNordered
  951.              #14 - SNAN, Signalling Not A Number
  952.              #13 - OPERR, OPerand ERRor
  953.              #12 - OVFL, OVerFLow
  954.              #11 - UNFL, UNderFLow
  955.              #10 - DZ, Divide by Zero
  956.              #9  - INEX2, INEXact operation
  957.              #8  - INEX1, INEXact decimal input
  958.              #7  - IOP, Invalid OPeration  (BSUN|SNAN|OPERR)
  959.              #6  - OVFL, OVerFLow
  960.              #5  - UNFL, UNderFLow         (UNFL|INEX2)
  961.              #4  - DZ, Divide by Zero
  962.              #3  - INEX, INEXact operation (INEX1|INEX2|OVFL)
  963.  
  964.          FPIAR     floating point instruction address register
  965.  
  966.  mmu
  967.       displays current MC68851/68030 MMU-register contents. Reported are:
  968.  
  969.          TT0,TT1 - Transparent Translation
  970.              bit - function
  971.              #31 - \
  972.          ... #24 - /LAB, Logical Address Base
  973.              #23 - \
  974.          ... #16 - /LAM, Logical Address Mask
  975.              #15 - E, Enable
  976.              #10 - CI, Cache Inhibit
  977.              #9  - R/W, Read/Write
  978.              #8  - RWM, Read/Write Mask
  979.              #6  - \ 
  980.          ... #4  - /FC, Function Code
  981.              #2  - \ 
  982.          ... #0  - /FCM, Function Code Mask
  983.  
  984.          TC        Translation Control
  985.              bit - function
  986.              #31 - E, Enable
  987.              #25 - SRE, Supervisor Root Enable
  988.              #24 - FCL, Function Code Lookup enable
  989.              #23 - \
  990.          ... #20 - /PS, Pagesize (¼..32KB)
  991.              #19 - \
  992.          ... #16 - /IS, Initial Shift (0..15)
  993.              #15 - \
  994.          ... #12 - /TIA, Table Index A (1..15)
  995.              #11 - \
  996.          ... #8  - /TIB, Table Index B (0..15)
  997.              #7  - \
  998.          ... #4  - /TIC, Table Index C (0..15)
  999.              #3  - \
  1000.          ... #0  - /TID, Table Index D (0..15)
  1001.  
  1002.             (DRP - Dma Root Pointer, MC68851 MMU only)
  1003.          CRP,SRP - Cpu, Supervisor Root Pointer
  1004.              bit - function
  1005.              #63 - L/U, Lower/Upper limit
  1006.              #62 - \
  1007.          ... #48 - /LMT, Limit
  1008.              #33 - \
  1009.          ... #32 - /DT, Descriptor Type
  1010.              #31 - \
  1011.          ....#4  - /TA, Table Address
  1012.  
  1013.          MMUSR   - MMU Status Register
  1014.              bit - function
  1015.              #15 - B, Bus error
  1016.              #14 - L, Limit error
  1017.              #13 - S, Supervisor only
  1018.              #11 - W, Write protected
  1019.              #10 - I, Invalid
  1020.              #9  - M, Modified
  1021.              #6  - T, Transparent translation
  1022.              #2  - \
  1023.          ... #0  - /N, Number of levels
  1024.  
  1025.  ramsey
  1026.       displays current RAMSEY configuration (A3000/A4000 only).
  1027.    Reported are:
  1028.          Page Detect Mode:(on/off)
  1029.          Burst Mode:(on/off)
  1030.          Burst Wrap Mode:(on/off)
  1031.          Chips onboard:(256KBit*4/1MBit*1/1MBit*4/4MBit*4)
  1032.          Refresh Rate:(154/238/380/off)cycles
  1033.          Ramsey Version:($0d/$0e)
  1034.  
  1035.  gary
  1036.       displays current GARY configuration (A3000/A4000 only).
  1037.    Reported are:
  1038.          Timeout:(disabled/Bus Error/DSACK)
  1039.          Keyboard Reset Enable:(on/off)
  1040.          Gary Version ID:($00/$90)
  1041.  
  1042.  bs addr
  1043.       adds a memory location to the list of breakpoints, if the location
  1044.    specified is even, hasn't been set yet and if it is a valid RAM
  1045.    location.  Breakpoints may also be placed in MMU-protected RAM, but not
  1046.    in ROM.  Up to 10 breakpoints at one time are possible.
  1047.  
  1048.  bl
  1049.       shows the breakpoint locations in disassembly.
  1050.  
  1051.  bc addr
  1052.       removes a specified memory location from the list of breakpoints.  If
  1053.    the parameter 0 is used, all breakpoints will be removed.
  1054.  
  1055.  g addr
  1056.       executes a subroutine at the specified memory location. The
  1057.    CPU/MMU/FPU-registers are set before execution and the resulting
  1058.    register contents are displayed after the execution.  All CPU/MMU/FPU-
  1059.    exceptions are controlled and the memory location where it occured is
  1060.    displayed. Take care, that the active stackpointer doesn't trash important
  1061.    data.  Before the execution the specified breakpoint locations are
  1062.    prepared and available CPU cache is cleared (not disabled!).  After the
  1063.    execution the previous instructions will be restored.  When an exception
  1064.    occurs, the stackpointer is corrected, so executing
  1065.          lea ($40000),a7
  1066.          illegal
  1067.    results in the expected register display, though the code has been
  1068.    started via 'JSR'.
  1069.  
  1070.  mmuoff
  1071.       disables the MMU (if you are lucky to own one :-).  This affects all
  1072.    memory operations like viewing, editing, disassembling, saving - but NOT
  1073.    program execution, which uses the MMU setup, visible with 'mmu'.  With
  1074.    this command you may e.g.  examine the A3000 built-in alpha ROM or change
  1075.    MMU-protected RAM). If you don't have a MMU, you will be told.
  1076.  
  1077.  mmuon
  1078.       enables the MMU.  If the current MMU setup is mangled, or has never
  1079.    been initialised this could result in a MMU exception.  If you don't
  1080.    have a MMU, you will be told.
  1081.  
  1082.  settt0 value
  1083.       this command places the specified value into the TT0 register of the
  1084.    MMU.  This may cause disastrous crashes if you don't know what you're
  1085.    doing.  If you don't have a MMU, you will be told.
  1086.  
  1087.  settt1 value
  1088.       this command places the specified value into the TT1 register of the
  1089.    MMU.  This may cause disastrous crashes if you don't know what you're
  1090.    doing.  If you don't have a MMU, you will be told.
  1091.  
  1092.  settc value
  1093.       this command places the specified value into the TC register of the
  1094.    MMU.  This may cause disastrous crashes if you don't know what you're
  1095.    doing.  If you don't have a MMU, you will be told.
  1096.  
  1097.  setsrp value1 value2
  1098.       this command places the specified values into the SRP register of the
  1099.    MMU.  This may cause disastrous crashes if you don't know what you're
  1100.    doing.  If you don't have a MMU, you will be told.
  1101.  
  1102.  setcrp value1 value2
  1103.       this command places the specified values into the CRP register of the
  1104.    MMU.  This may cause disastrous crashes if you don't know what you're
  1105.    doing.  If you don't have a MMU, you will be told.
  1106.  
  1107.  setdrp value1 value2
  1108.       this command places the specified values into the DRP register of the
  1109.    MMU.  This may cause disastrous crashes if you don't know what you're
  1110.    doing.  If you don't have a MC68851 MMU, you will be told.
  1111.  
  1112.  setmmusr value
  1113.       this command places the specified values into the MMUSR register of
  1114.    the MMU.  This may cause disastrous crashes if you don't know what
  1115.    you're doing.  If you don't have a MMU, you will be told.
  1116.  
  1117.  x
  1118.       exits the monitor.  If the monitor has been invoked from CLI, he
  1119.    returns to it.  If the monitor is located in the module a reset is
  1120.    performed.  If the monitor is invoked by a freeze mechanism, the freezed
  1121.    program is continued.
  1122.  
  1123.  X
  1124.       exits the monitor and performs a complete hardware-reset including
  1125.    clearing of the memory.
  1126.  
  1127.  B rgb1 rgb2
  1128.       changes the background and foreground colors of the display.
  1129.  
  1130.  W <addr>
  1131.       displays the current workspace locations if no parameter is
  1132.    specified.  In case a parameter is specified and there is backup memory
  1133.    either in the module or in special memory areas, the workspace is
  1134.    changed to the specified chip memory location.  The previous memory
  1135.    locations used as a workspace are restored using the backupmemory
  1136.    contents saved while startup.  If there is no module installed the
  1137.    monitor first checks, if execbase checksums are valid.  If they are, the
  1138.    memlist is scanned for a chunk of graphics memory being big enough to
  1139.    hold the screen and the diskDMAbuffer.  The text 'Scr(SYS)' reflects
  1140.    this case.  If none is found or execbase seems corrupted, absolute
  1141.    memory is used; conflicts of possible code/workspace overlay are
  1142.    handled correctly.  The text 'Scr(ABS)' reflects this case.  The above
  1143.    is valid for exchange memory, too.  The corresponding texts are
  1144.    'Exg(SYS)' and 'Exg(ABS)'.  If the chunk in the memlist is more than
  1145.    big enough, the workspace is placed at the end of it.  Currently the
  1146.    following locations are scanned for memory expansions during startup, if
  1147.    no chunk of fast memory being big enough is found using the memlist, or
  1148.    if execbase seems corrupted.
  1149.  
  1150.    $f00000 $200000 $c00000 $80000
  1151.  
  1152.    If there is no backup memory found or you pressed right mousebutton
  1153.    during startup, no backupmemory is used and therefor the original
  1154.    contents cannot be restored when changing the workspace or exiting.
  1155.    The workspace memory which is used for screenbitmap and disk drive
  1156.    DMA-buffers defaults to $74000 in absolute mode, if there is a 8371
  1157.    agnus.  With 1 MB continous ram below $100000 and a big agnus chip, the
  1158.    workspace defaults to $f4000.  With 1.5 MB continous ram below $180000
  1159.    and a big agnus chip, the workspace defaults to $174000.  With 2 MB
  1160.    continous ram below $200000 and a big agnus chip, the workspace defaults
  1161.    to $1f4000.  If the absolute workspace would overlay with the memory
  1162.    in which the monitor is located, the absolute workspace is placed just
  1163.    before the programcode.  Keep in mind, that if any absolute memory is
  1164.    used, returning to the shell is rather risky, because unexpected things
  1165.    *may* happen.
  1166.  
  1167.  i
  1168.       displays the contents of the CPU-exceptionvectors, DMA- and
  1169.    interrupt-registers determined during startup.  The vectors are changed
  1170.    within the monitor to prevent executed programs from creating any alerts
  1171.    and gurus.
  1172.  
  1173.  match <0>
  1174.       displays the contents of the matchbuffer, if no parameter is
  1175.    specified. In case of an parameter '0', the matchbuffer is cleared.
  1176.  
  1177.  d <addr1> <addr2>
  1178.       disassembles the memory locations beginning with "addr1" and ending
  1179.    with "addr2"-1 if they are specified.  The disassembly can be edited
  1180.    using the cursor.  Instructions, which cause an unconditional change of
  1181.    program flow are followed by a separating line.  If no valid instruction
  1182.    is given the line is not accepted and not altered in memory.  The
  1183.    address of an instruction, whose address is part of the breakpoint- or
  1184.    matchbuffer is highlighted.
  1185.  
  1186.  dm
  1187.       changes the way offsets are displayed in disassembly between decimal
  1188.    and hexadecimal form.
  1189.  
  1190.  ds
  1191.       changes the way offsets are displayed in disassembly between signed
  1192.    and unsigned form.
  1193.  
  1194.  dv
  1195.       toggles the calculation of the effective address on the right part of
  1196.    the disassembly.  In the worst case of abnormally large instructions
  1197.    (movem), you may want to toggle this function off.  Note that currently
  1198.    predecrement and postincrement is ignored.
  1199.  
  1200.  n addr
  1201.       invokes the built-in MC680x0 line-assembler at the specified address.
  1202.    The current instruction is displayed.
  1203.  
  1204.  N addr
  1205.       invokes the built-in 6502/65SC802/65SC816 line-assembler at the
  1206.    specified address.  The current instruction is displayed.
  1207.  
  1208.  auto
  1209.       enables automatic immediate operand size selection for
  1210.    65SC802/65SC816 instructions.  This function is of use in both assembly
  1211.    and disassembly, because it remembers previous SEP #$xx and REP #$xx
  1212.    instructions.  Note that the functionality depends on a linear flow of
  1213.    code. The default size is 16 bit for accumulator and index registers.
  1214.  
  1215.  accu [8|16]
  1216.       forces accumulator immediate operand size to either 8 or 16 bits and
  1217.    disables automatic immediate operand size selection.
  1218.  
  1219.  index [8|16]
  1220.       forces index register immediate operand size to either 8 or 16 bits
  1221.    and disables automatic immediate operand size selection.
  1222.  
  1223.  u <addr1> <addr2>
  1224.       disassembles the memory locations in 6502/65SC802/65SC816 mode
  1225.    beginning with "addr1" and ending with "addr2"-1 if they are specified.
  1226.    The instrucions are shown in hexadecimal, mnemonic and ASCII notation.
  1227.    The effect of SEP #$xx and REP #$xx instruction on immediate opperands
  1228.    is commented.  The special SNES hardware registers are commented, if
  1229.    they are accessed in absolute and absolute/indexed addressing modes.
  1230.    The disassembly can be edited using the cursor.  If no valid instruction
  1231.    is given the line is not accepted and not altered in memory.
  1232.  
  1233.  K <fn "text1|text2...">
  1234.       defines commands or command sequences to be executed when pressing
  1235.    one of the function keys.  The parameter "fn" may be one between f1 -
  1236.    f10. The "|" sign results in a return key being written into the input
  1237.    buffer and is also needed for the last command in a sequence, if you
  1238.    want it being automatically executed.  Both quoting characters " and '
  1239.    can be used to define the string.  If no parameters are specified the
  1240.    current function key settings are displayed.
  1241.  
  1242.  D <n>
  1243.       selects another diskdrive.  The parameter "n" may be one between 0
  1244.    and 3 where 0 corresponds to DF0.  The current directory is set to the
  1245.    root directory.  If the specified diskdrive is not available the drive 0
  1246.    is selected.  If no parameter is specified the current diskdrive is
  1247.    returned.
  1248.  
  1249.  dir <f>
  1250.       first reports the name of the disk or the current subdirectory and
  1251.    the number of free and used blocks.  The filelist of the current
  1252.    directory including the comment and the size in bytes and blocks is
  1253.    returned.  Existing hardlinks are reported with the corresponding object
  1254.    refered to.  Note that linked files and directories do support their own
  1255.    datestamp, but don't support their own protection bits and file comments
  1256.    If the option f is given, the time and date of creation, the protection
  1257.    bits, the file/dirheader key, the fileextension key and the first
  1258.    datablock key is also returned.  If the disk is not a dos disk or if any
  1259.    other errors occur a corresponding message is returned.
  1260.  
  1261.  bootsum addr
  1262.       calculates and sets the checksum of an AmigaDOS bootblock located at
  1263.    the specified address.  The previous and the new checksums are returned.
  1264.  
  1265.  datasum addr
  1266.       calculates and sets the checksum of an AmigaDOS datablock located at
  1267.    the specified address.  The previous and the new checksums are returned.
  1268.  
  1269.  bitsum addr
  1270.       calculates and sets the checksum of an AmigaDOS bitmapblock located
  1271.    at the specified address.  The previous and the new checksums are
  1272.    returned.
  1273.  
  1274.  kicksum addr
  1275.       calculates and sets the checksum of a kickstart image.  The specified
  1276.    locations are checked to represent a valid kickstart image, and the size
  1277.    of it is determined (256/512 KB).  The previous and the new checksums
  1278.    are returned.
  1279.  
  1280.  megasum addr
  1281.       calculates and sets the checksum of a SEGA Megadrive ROM image.  The
  1282.    specified locations are checked to represent a valid ROM image.  The
  1283.    previous and the new checksums are returned.
  1284.  
  1285.  famisum addr
  1286.       calculates and sets the checksum of a SNES (Super Famicon) ROM image.
  1287.    The specified locations are checked to represent a valid ROM image.  The
  1288.    previous and the new checksums are returned.  Additional module
  1289.    information ist reported.
  1290.  
  1291.  famiplay addr
  1292.       transfers the datablock beginning with the specified location to a
  1293.    Super Magic Drive copier unit connected the parallel port, if it passes
  1294.    an integrity check.  If the unit does not respond in time, a timeout
  1295.    error is reported.  During transfer the current address and the number
  1296.    of blocks to go is shown.  The transfer can be aborted using the escape
  1297.    key.  The datablock represents a SNES (super Famicon) module with Super
  1298.    Magic Drive header and organisation.  Refer to the section near the end for
  1299.    information on the supported cable wiring.
  1300.  
  1301.  smdplay addr
  1302.       transfers the datablock beginning with the specified location to a
  1303.    Super Magic Drive copier unit connected the parallel port, if it passes
  1304.    an integrity check.  If the unit does not respond in time, a timeout
  1305.    error is reported.  During transfer the current address and the number
  1306.    of blocks to go is shown.  The transfer can be aborted using the escape
  1307.    key.  The datablock represents a SEGA Megadrive module with Super Magic
  1308.    Drive header and organisation.  Refer to the section near the end for
  1309.    information on the supported cable wiring.
  1310.  
  1311.  rawplay addr
  1312.       transfers the datablock beginning with the specified location to a
  1313.    Super Magic Drive copier unit connected the parallel port, if it passes
  1314.    an integrity check.  If the unit does not respond in time, a timeout
  1315.    error is reported.  During transfer the current address and the number
  1316.    of blocks to go is shown.  The transfer can be aborted using the escape
  1317.    key.  The datablock represents a SEGA Megadrive module in raw binary
  1318.    format without any headers.  Refer to the section near the end for
  1319.    information on the supported cable wiring.
  1320.  
  1321.  smd2raw addr
  1322.       converts the specified datablock in Super Magic Drive format into raw
  1323.    binary format, if it passes an integrity check.  During conversion the
  1324.    current address and the number of blocks to go is shown.  The resulting
  1325.    data starts with addr and ends with addr+modulesize followed by $200
  1326.    bytes of memory filled with $55.
  1327.  
  1328.  v <sync>
  1329.       changes the syncword for all disk file and track operations to the
  1330.    specified value.  The value is checked for consistency and invalid syncs
  1331.    are noted, but not ignored.  If no parameter is specified the current
  1332.    syncword setting is returned.
  1333.  
  1334.  vc <track>
  1335.       tries to find out the sync marks on the specified track of the
  1336.    selected drive, or on track 0, if no track is specified.
  1337.    (NOTE: this function needs major rework...)
  1338.  
  1339.  l addr cyl <num>
  1340.       reads the specified number of AmigaDOS cylinders to the specified
  1341.    memory locations from the selected diskdrive beginning with cylinder
  1342.    "cyl".  If no parameter "num" is specified only one cylinder will be
  1343.    read.  Note the difference between cylinders and tracks:  a disk
  1344.    contains 83 cylinders and 166 tracks.  The length of one cylinder is
  1345.    2 sides * 11 sectors * $200 bytes = $2c00 bytes in DD mode and
  1346.    2 sides * 22 sectors * $200 bytes = $5800 bytes in HD mode.  While
  1347.    reading tracks a list is displayed reporting which cylinder, head and
  1348.    sector has just been read to which address.  If there is an error which
  1349.    couldn't be recovered with upto three internal retries for each sector,
  1350.    the user may  select between retry, ignore and abort to handle this
  1351.    situation.
  1352.  
  1353.  s addr cyl <num>
  1354.       writes cylinders to the selected diskdrive.
  1355.  
  1356.  l addr sec <num> s
  1357.       reads the specified number of AmigaDOS sectors to the specified
  1358.    memory locations from the selected diskdrive beginning with sector
  1359.    "sec".  If no parameter "num" is specified only one sector will be read.
  1360.  
  1361.  s addr sec <num> s
  1362.       writes sectors to the selected diskdrive.
  1363.  
  1364.  L filename addr
  1365.       loads an AmigaDOS file named "filename" and located in the current
  1366.    directory to the specified address "addr".  The filename can be quoted
  1367.    to include spaces.  If the disk has been changed, the current directory
  1368.    is set to the root directory.  While loading the current loadaddress is
  1369.    displayed.  If there is any error a corresponding message is returned.
  1370.    Both OFS and FFS disks are supported.  The OS2.0 link-feature is
  1371.    supported, too.
  1372.  
  1373.  S filename addr1 addr2
  1374.       saves an AmigaDOS file named "filename" into the current direcory.
  1375.    Saving begins with "addr1" and ends with "addr2"-1.  If there is not
  1376.    enough free space on the current disk, the operation is aborted.  While
  1377.    saving the current saveaddress is displayed.  If there is any error a
  1378.    corresponding message is returned.  The time and date information is
  1379.    set, if there is a clockchip (either A500/A2000 or A3000/A4000 version)
  1380.    installed and the chip appears functional.  Otherwise the the creation
  1381.    time is reset to 00:00:00 on 01-Jan-78.
  1382.  
  1383.  type filename
  1384.       types an AmigaDOS file named "filename" located in the current
  1385.    directory onto the screen.  The filename can be quoted to include
  1386.    spaces.  If the disk has been changed, the current directory is set to
  1387.    the root directory.  If a line feed character ($0A) occurs within
  1388.    the file, the cursor is put into the first column of the next line.
  1389.    If there is any error a corresponding message is returned.
  1390.  
  1391.  cd :
  1392.       sets the root directory as the current directory.
  1393.  
  1394.  cd subdir
  1395.       sets the specified subdirectory named "subdir" as the current
  1396.    directory.  This is only valid for the disk which is currently installed
  1397.    in the selected diskdrive.  Before any file- or dosoperation is done
  1398.    with a changed disk the current directory is reset to the rootdirectory.
  1399.    The OS2.0 link-feature is supported, too.
  1400.  
  1401.  mk subdir
  1402.       creates a subdirectory named "subdir" in the current directory of the
  1403.    selected diskdrive.
  1404.  
  1405.  del "name"
  1406.       deletes a file named "name" and being located in the current
  1407.    directory of the selected diskdrive.  If "name" is a subdirectory it is
  1408.    also deleted if it has been empty.  Linked files and directories are
  1409.    handled correctly.
  1410.  
  1411.  M
  1412.       returns the block allocation map of an AmigaDOS disk inserted in the
  1413.    current diskdrive.  A filled squar indicates that a sector is currently
  1414.    allocated and in use.  The upper part represents head 0 with sectors
  1415.    incrementing from 0 to 10 in DD mode and from 0 to 21 in HD mode, while
  1416.    the lower part represents head 1.
  1417.  
  1418.  info
  1419.       reports the drivemode (DD or HD).  The sector of the bitmap is also
  1420.    displayed and if the disk is validated or not.  No writing fileoperation
  1421.    can be performed without a validated disk.  The type of the filesystem
  1422.    is reported, too (DOSType, OFS or FFS and non international or
  1423.    international). In addition, the number of free bytes is reported.
  1424.  
  1425.  verify
  1426.       toggles disk verification.  If switched on, any track written to disk
  1427.    will be checked for write errors.  If there is an error, the user may
  1428.    select between retry, ignore and abort to handle this situation.
  1429.  
  1430.  format "name" <q> <0/1/2/3>
  1431.       initialises the disk in the selected drive.  No verification is done.
  1432.    If the option q is specified, only the boot- and root-tracks are
  1433.    formatted.  The disk won't be installed.  If no third parameter is
  1434.    given, the disk is initialised as a standard OFS disk, otherwise the
  1435.    parameter selects the filesystem between:
  1436.              0: non international OldFilingSystem  (DOSType DOS\0)
  1437.              1: non international FastFilingSystem (DOSType DOS\1)
  1438.              2:     international OldFilingSystem  (DOSType DOS\2)
  1439.              3:     international FastFilingSystem (DOSType DOS\3)
  1440.    The default '0' is readable with any version of AmigaDOS.  All other
  1441.    filing systems need OS2.0 to be recognised as a valid disk outside the
  1442.    BeerMon.  A HD disk inserted in a Chinon FB357A HD diskdrive will be
  1443.    formatted with 3520 sectors representing 1.76 MB.
  1444.  
  1445.  
  1446.  install <0/1/2/3/4>
  1447.       installs the disk in the selected drive.  If no parameter is
  1448.    specified, a WB2.x bootblock is installed, whose DOSType is determined
  1449.    by examining the DOSType entry of the previous bootblock.  If this entry
  1450.    is invalid, the disk is rejected.  The previous bootblock is ignored, if
  1451.    the optional parameter is specified, which selects between:
  1452.              0: non international OldFilingSystem  (DOSType DOS\0) WB2.x
  1453.              1: non international FastFilingSystem (DOSType DOS\1) WB2.x
  1454.              2:     international OldFilingSystem  (DOSType DOS\2) WB2.x
  1455.              3:     international FastFilingSystem (DOSType DOS\3) WB2.x
  1456.              4: non international OldFilingSystem  (DOSType DOS\0) WB1.3
  1457.    The last version is rather antique and should only be used if you have
  1458.    to ensure that the CLI screen is opened early, when using OS2.0.  Take
  1459.    care not to change the filesystem of a disk already containing files, or
  1460.    they are likely to become unreadable .  Use the 'M' command to find out
  1461.    the type of such a disk.
  1462.  
  1463.  cls
  1464.       clears the screen.
  1465.  
  1466.  time
  1467.       returns the current time and date, if there is a clockchip located at
  1468.    the ususal location (either A500/A2000 or A3000/A4000 version).
  1469.  
  1470.  / [0..9]
  1471.       returns info on several system structures.
  1472.    Needs some rework.
  1473.  
  1474.  cop <addr1 addr2>
  1475.       searches for a valid copper instruction list beginning with "addr1"
  1476.    and ending with "addr2"-1.  If no parameter is specified, the whole chip
  1477.    memory  area is scanned.  If a copperlist is considered valid, the start
  1478.    and end address of this area is reported.
  1479.  
  1480.  V <addr1> <addr2>
  1481.       disassembles the copperinstructions at the memory locations beginning
  1482.    with "addr1" and ending with "addr2"-1, if they are specified.  The
  1483.    disassembly includes symbolic register names and can be edited using the
  1484.    cursor.  If no valid instruction is given the line is not accepted and
  1485.    not altered in memory.  The new ECS and AGA registers are handled, too.
  1486.    Examples of valid instructions:
  1487.              -Move #$8201,BplCon0      -dc.l $1800fff
  1488.              -EndList                  -Wait $0c,$00,1,$7f,$7f
  1489.              -Skip $0c,$00,1,$7f,$7f
  1490.  
  1491.  custom
  1492.       displays a table with name and the corresponding address of each
  1493.    custom chip register.  The new ECS and AGA registers are handled, too.
  1494.    If the screen is filled, you can advance to the next page by pressing
  1495.    the right mouse button.  The command can be aborted by pressing the
  1496.    escape key.
  1497.  
  1498.  h start end <addr> <jmp>
  1499.       generates an object module including the data beginning with "start"
  1500.    and ending with "end"-1.  A code transfer routine is added using the
  1501.    destination address "addr" or the parameter "start" if it is not
  1502.    specified.  The program is executed using the parameter "jmp" or the
  1503.    parameter "start" if it is not specified.  The transfer routine disables
  1504.    DMA transfer, changes interrupt masks and flags and loads the active
  1505.    stackpointer (which mostly is the USP) with the value $80000.  The
  1506.    generated module may (and should) be edited according to your needs
  1507.    before being saved to disk.
  1508.  
  1509.  b <addr>
  1510.       shows memory locations beginning with "addr" in form of a bitmap.
  1511.    Moving the mouse up increases the startaddress.  The right mousebutton
  1512.    toggles between Medres and Lores screenresolution.  The escape key exits
  1513.    the bitplane display.  This is no IFF-searcher and is only intended to
  1514.    get a quick overview about memory contents such as free space, code,
  1515.    diskbuffers, bitplanes, bobs or sounddata.  The memory locations need
  1516.    not to be in chipmemory but may be any valid memory location below
  1517.    $c80000.  You may also display memory locations beginning with $f00000.
  1518.    Take care of not displaying any locations without ram installed such
  1519.    e.g.  $b00000.
  1520.  
  1521.  P
  1522.       toggles printer output.  If a printer is connected to the centronics
  1523.    port and online.  Any text output is both displayed on the screen and
  1524.    sent to the printer if this function is enabled.
  1525.  
  1526.  k
  1527.       toggles the current keymap between german keymap and usa keymap.  As
  1528.    a default setting the german keymap is used.
  1529.  
  1530.  config
  1531.       performs an autoconfig procedure for Zorro-II and Zorro-III
  1532.    expansions inside the lower 16MB address space.  This enables you to use
  1533.    Zorro type RAM-expansions (e.g.  at $200000) after you entered the
  1534.    module via reset (CTRL-A-A) or you performed the MC680x0
  1535.    RESET-instruction.
  1536.  
  1537. *****************************************************************************
  1538.  The supported Super Magic Drive cable wiring:
  1539.  
  1540.           Amiga Parallel Port              Super Magic Drive
  1541.                 D0    2  ----------------------  2  D0
  1542.                 D1    3  ----------------------  3  D1
  1543.                 D2    4  ----------------------  4  D2
  1544.                 D3    5  ----------------------  5  D3
  1545.                 D4    6  ----------------------  6  D4
  1546.                 D5    7  ----------------------  7  D5
  1547.                 D6    8  ----------------------  8  D6
  1548.                 D7    9  ----------------------  9  D7
  1549.                 GND  17  ---------------------- 17  GND
  1550.                 BUSY 11  ---------------------- 11  BUSY
  1551.                 SEL  13  ----------------------  1  STROBE
  1552.  
  1553.  
  1554. *** So that's all, share, spread and enjoy the word and also the disk.
  1555.  Greetings rush out to my friends around in TRSI, ESCape, the incredible
  1556.  FakeBuster, CodX, SMF, PBA, Kelly van Vliet and anybody elso who has been
  1557.  involved, or just deserves it. I also raise my chalice to the unnamed and
  1558.  faceless ones who share my blood and speak my name...Shemhamforash!
  1559.  
  1560. signed: Carnivore/BeerMacht 18.06.1993
  1561.